The invention relates to electronic communications systems and more particularly to a method and device for aligning a received echo signal within a received block of data such that the echo is aligned to a predetermined transmit block of a data.
Computers typically use modems to communicate digital information over voice-grade telephone lines. Such modems translate digitally expressed information from the computer into analog frequency signals suitable for transmission over the voice-grade telephone facility, and convert such signals back into digital form when received from the telephone line.
High speed modems may advantageously employ digital signal processing techniques for translating outgoing digital data into a sequence of digital values each representing a desired analog output signal sample amplitude. These digital sample values may then be converted into analog form by a digital-to-analog converter for transmission over the telephone facility. Correspondingly, at the receiving station, the incoming analog signal may be converted into a train of digital sample amplitude values which are then processed to reconstruct the original digital data.
In some prior art systems, the processing of the digital sample values is accomplished by one or more dedicated microprocessors within the digital modem. For example, U.S. Pat. No. 5,008,091 issued on Apr. 16, 1991 and herein incorporated by reference, describes a modem that employs three such dedicated microprocessors. These microprocessors are (1) a transmitting microprocessor dedicated primarily to the translation of digital data into digital sample values; (2) a receiving microprocessor devoted primarily to the translation of sample amplitude values back into digital data; and (3) a supervisory microprocessor which serves as the interface to the computer to which the modem is connected.
Still other systems known in the art employ analog/digital conversion methods to convert received analog signals into digitally expressed analog sample values and, during transmission, to convert digitally expressed sample values into analog form. These systems, however, process the digital sample value signals by the microprocessor already present in the connected computer, instead of by processors within the modem unit. As a consequence, the cost of the modem is substantially reduced because the need for separate processors is eliminated. Such a modem is shown in U.S. Pat. No. 5,872,836, issued Feb. 16, 1999, the contents of which are hereby incorporated herein by reference.
Typically, a conventional host computer employing a microprocessor is combined with a low-cost interface unit consisting of telephone line adapter circuitry, an analog/digital converter, and a direct digital interface to the host computer""s system I/O bus. The telephone interface unit exchanges digitally-expressed analog sample amplitude values directly with the connected host computer, and the microprocessor within the host computer handles the remainder of the digital processing. The telephone interface unit serves as the analog front-end componentry to the digital processing on the host computer. Such as a system is typically operated as a modem, with digital data being processed into a sequence of digitally expressed sample values in accordance with a selected one of several accepted modem formats and transmission speeds.
The transceiver, as is typical, must contend with echoes of the transmitted signal that interfere with the desired receive signal. The echo component of the transmitted signal received at the receiver results from hybrid or other impedance mismatches, and the like. Because this echo presents an undesirable form of distortion to the received signal, it is desirable to eliminate the echo component to the extent possible. Echo cancellation techniques are well developed and well known in the telecommunication arts. One such echo cancellation technique accomplishes this by canceling the echo with a local replica of the echo signal that is arrived at via a filtering technique.
A method and apparatus for aligning a received echo signal is provided. In two-wire full-duplex transceiver devices, such as common two-wire voice-frequency modem devices, a local echo component is undesirable due to its interference with the intended received signal that has been transmitted from the distant end. The local echo is generated by the transceiver""s receiver section due to its inability to distinguish between signals from the distant end and signals that have in actuality been transmitted by its own transmit portion.
The method is well suited to modems operating on a host processor of a general purpose computer, referred to herein as a softmodem because of the minimal hardware elements associated exclusively with the modem apparatus and function. The method operates by predetermining a memory address pointer value that determines which transmit data is to be selected from memory for transmission over the two-wire line. The pointer is selected such that an appropriate delay is created, resulting in the associated received echo having a desired timing alignment within the received block of data.
The method thus includes predetermining a pointer offset value; generating blocks of digital transmit data; transferring the transmit digital data to a converter using the predetermined pointer offset value (and a base memory address); converting the transmit digital data to a transmit analog signal and transmitting the analog signal; sampling a received signal and forming blocks of received digital data, where the received signal includes a transmit echo. The use of the pointer offset value results in block alignment between a receive block and the transmit echo component originating from a given transmit block.
The pointer offset predetermination is performed by determining a correlation between the transmit data and the transmit echo within the receive data. The pointer is then initialized by setting an address generator within an ASIC interface device that samples incoming analog signals and converts outgoing transmit data to an analog signal.
The method may also be implemented by adjusting the receive block framing to coincide with the embedded transmit echo from a given transmit data block. The method includes determining a pointer and offset pointer value that is used to transfer the data received in a serial fashion into desired memory block regions that are then read by the microprocessor.
The method is well suited for use in a microprocessor-based modem operating on blocks of data. The microprocessor is preferably associated with a general purpose computer, while the analog front end and the data conversion elements reside on a telephone expansion interface card. The echo cancelling modem apparatus thus includes memory for storing transmit and receive data values arranged in data blocks; an interface circuit interconnected to the memory, where the interface circuit has a transmit data buffer, a receive data buffer, an address generator having a transmit address register, a receive address register, and an offset register. The transmit and receive address registers contain transmit and receive pointers, respectively, to locations within the memory that are used by the ASIC interface to effect the exchange of data with the processor. The offset register is used to insert a delay by modifying either the transmit or receive addresses, thus affecting the transfer of data between the processor and the interface.
Also included is a A/D-D/A converter connected to the interface circuit for converting between analog and digital signals. The interface circuit also includes an interrupt generator that interupts the microprocessor to indicate that a block of receive data has been written to the memory.
The methods may also be incorporated in software instructions and placed on a computer-readable medium. This medium thus contains instructions for causing a general-purpose computer to perform the following steps: generate blocks of transmit data and store the transmit blocks in a first memory location; read blocks of receive data from a second memory location; process the blocks of receive data to remove echoes of the transmit data using corresponding blocks of transmit data in a one-to-one relationship; initialize pointer registers, wherein the pointer register values determine memory locations from which transmit data blocks are selected for transmission, thereby inserting a transmission delay that results in block alignment of the transmit echo within a receive block.
The foregoing and other features and advantages of an illustrative embodiment of the present invention will be more readily apparent from the following detailed description, which proceeds with references to the accompanying drawings.